package com.lhl.log.annotation;

import com.lhl.log.config.Level;
import com.lhl.log.config.Position;
import com.lhl.log.core.LogCallback;
import com.lhl.log.formatter.ResultFormatter;

import java.lang.annotation.*;

/**
 * 结果日志
 * @author xsx
 * @date 2019/6/18
 * @since 1.8
 */
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface ResultLog {
    /**
     * 业务名称
     * @return
     */
    String value();

    /**
     * 日志级别
     * @return
     */
    Level level() default Level.DEBUG;

    /**
     * 代码定位支持
     * @return
     */
    Position position() default Position.ENABLED;

    /**
     * 返回结果格式化
     * @return
     */
    Class<? extends ResultFormatter> resultFormatter() default ResultFormatter.class;

    /**
     * 回调
     * @return
     */
    Class<? extends LogCallback> callback() default LogCallback.class;
}
